package com.zhao.algorithm.utils

import java.text.SimpleDateFormat
import java.util.{Date, Locale}

/**
 * Description: <br/>
 * Copyright (c) ，2020 ， 赵 <br/>
 * This program is protected by copyright laws. <br/>
 * Date： 2020/11/23 10:25
 *
 * @author 柒柒
 * @version : 1.0
 */

object TimeTransformUtil {

  /**
   * 获取当前时间戳，作为用户曝光列表的value
   *
   * @return nowTime
   */

  def getLongTime(): Long = {
    val nowTime = System.currentTimeMillis() / 1000
    nowTime
  }


  /**
   * 获取当前年-月-日
   *
   * @return yyyy-MM-dd
   */
  def getNowDate(): String = {

    val date: String = new SimpleDateFormat("yyyy-MM-dd").format(new Date)

    date
  }

  /**
   * 获取当前 年-月-日 时:分:秒
   *
   * @return yyyy-MM-dd HH:mm:ss
   */
  def getNowTime(): String = {

    val date: String = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date)

    date
  }


  /**
   * 获取log日志中的timestamp
   *  hh HH 大小写注意⚠️⚠️⚠️⚠️⚠️⚠️
   * @param td 传入的timestamp  --> dd/MMM/yyyy:HH:mm:ss Z 格式
   * @return 时间戳 Long
   */
  def logDateToStamp(td: String): Long = {
    try {
      val simpleDateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US)
      val date = simpleDateFormat.parse(td)
      val stp = date.getTime / 1000
      stp
    } catch {
      case e: Exception => {
        e.printStackTrace()
        getLongTime()
      }
    }
  }

  /**
   * 获取log日志中的timestamp
   *
   * @param td 传入的timestamp --> yyyy-MM-dd HH:mm:ss
   * @return 时间戳 Long
   */
  def dateToStamp(td: String): Long = {
    try {
      val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
      val dt = fm.parse(td)
      val tim: Long = dt.getTime() / 1000
      tim
    } catch {
      case e: Exception => {
        e.printStackTrace()
        getLongTime()
      }
    }
  }
}
